1. Technical Field
The present disclosure relates to storage systems and, more specifically, to efficient use of recovery information to recover a storage system.
2. Background Information
A storage system typically includes one or more storage devices into which information may be entered, and from which information may be obtained, as desired. The storage system may logically organize the information stored on the devices as storage containers, i.e., a logical pool of storage. Each storage container may be implemented as a set of data structures, such as data blocks that store data for the storage containers and metadata blocks that describe the data of the storage containers. The storage system may be configured to log portions of the data and metadata as recovery information for the storage containers in the event of a storage system failure (e.g., a power failure).
The storage system also may be configured to provide services relating to access of the data in the storage containers stored on the storage devices. The services may be configured to operate according to a client/server model of information delivery to thereby allow many clients (hosts) to access the storage containers. In other words, the storage system may service client data access requests from the storage containers.
In the event of a failure, the storage system may be configured to initiate recovery actions that apply recovery information to the storage containers so as to avoid information (i.e., data and metadata) loss. Depending on the recovery needs for a storage container, a different amount of recovery information may be applied. That is, the amount of recovery information (and recovery time) required for a storage container after a failure event may vary from storage container to storage container. Further, recovery actions are often performed serially across all storage containers, regardless of the amount of recovery time actually required for each storage container. Serial recovery is typically performed because a dependency of the recovery information (and recovery actions) needed among the storage containers is often unknown. Generally, it is desirable for the storage containers to become available to service data access requests as soon as practicable after a failure event. However, when the dependency of recovery information among the storage containers is unknown, recovery of the storage containers may be inefficient. As a result, there may be substantial disparity among the storage containers with respect to duration of recovery, e.g., some storage containers may require only minutes of recovery time while others may require hours. As such, the availability of some storage containers to service data access requests after a failure event may be unnecessarily delayed.
Thus, there is a need for efficient use of recovery information for storage systems.